Cleanup zlib, fix gcc errors Change-Id: Ie37d64e9db4d50f2261730ed6ff94865f6f70b1b 
diff --git a/third_party/zlib/BUILD.gn b/third_party/zlib/BUILD.gn index ba16961..06d63ae 100644 --- a/third_party/zlib/BUILD.gn +++ b/third_party/zlib/BUILD.gn 
@@ -21,8 +21,7 @@  }  }   -use_x86_x64_optimizations = - (current_cpu == "x86" || current_cpu == "x64") +use_x86_x64_optimizations = current_cpu == "x86" || current_cpu == "x64"    config("zlib_adler32_simd_config") {  if (use_x86_x64_optimizations) { @@ -43,7 +42,7 @@  "adler32_simd.h",  ]   - cflags = [ "-mssse3" ] + cflags = [ "-mssse3" ]  }    if (use_arm_neon_optimizations) { @@ -58,35 +57,36 @@  public_configs = [ ":zlib_adler32_simd_config" ]  }   -if (use_arm_neon_optimizations) { +# CRC32 is not properly linked on ARM64. +if (use_arm_neon_optimizations && current_cpu == "arm") {  config("zlib_arm_crc32_config") { - defines = [ "CRC32_ARMV8_CRC32" ] - if (is_linux || is_chromeos) { - defines += [ "ARMV8_OS_LINUX" ] - } else if (is_fuchsia) { - defines += [ "ARMV8_OS_FUCHSIA" ] - } else { - assert(false, "Unsupported ARM OS") - } + # Neon is only available on ARM8. + defines = [ "CRC32_ARMV8_CRC32" ] + if (is_linux || is_chromeos) { + defines += [ "ARMV8_OS_LINUX" ] + } else if (is_fuchsia) { + defines += [ "ARMV8_OS_FUCHSIA" ] + } else { + assert(false, "Unsupported ARM OS") + }  }    source_set("zlib_arm_crc32") {  visibility = [ ":*" ]   - include_dirs = [ "." ] + include_dirs = [ "." ]   - if (!is_clang) { - assert(!use_thin_lto, - "ThinLTO fails mixing different module-level targets") - cflags_c = [ "-march=armv8-a+crc" ] - } + cflags_c = [] + if (!is_clang) { + cflags_c = [ "-march=armv8-a+crc" ] + }   - sources = [ - "arm_features.c", - "arm_features.h", - "crc32_simd.c", - "crc32_simd.h", - ] + sources = [ + "arm_features.c", + "arm_features.h", + "crc32_simd.c", + "crc32_simd.h", + ]    configs += [ ":zlib_internal_config" ]   @@ -125,9 +125,7 @@  ]  }   - configs += [ - ":zlib_internal_config", - ] + configs += [ ":zlib_internal_config" ]    public_configs = [ ":zlib_inflate_chunk_simd_config" ]  } @@ -147,10 +145,10 @@  "crc32_simd.h",  ]   - cflags = [ - "-msse4.2", - "-mpclmul", - ] + cflags = [ + "-msse4.2", + "-mpclmul", + ]  }    configs += [ ":zlib_internal_config" ] @@ -158,30 +156,6 @@  public_configs = [ ":zlib_crc32_simd_config" ]  }   -source_set("zlib_x86_simd") { - visibility = [ ":*" ] - - if (use_x86_x64_optimizations) { - sources = [ - "crc_folding.c", - "fill_window_sse.c", - ] - - cflags = [ - "-msse4.2", - "-mpclmul", - ] - } else { - sources = [ - "simd_stub.c", - ] - } - - configs += [ - ":zlib_internal_config", - ] -} -  config("zlib_warnings") {  cflags = []  if (is_clang && use_x86_x64_optimizations) { @@ -191,6 +165,35 @@  if (is_clang) {  cflags += [ "-Wno-unused-variable" ]  } + + if (is_gcc) { + cflags += [ "-Wno-parentheses" ] + } +} + +source_set("zlib_x86_simd") { + visibility = [ ":*" ] + + if (use_x86_x64_optimizations) { + sources = [ + "crc_folding.c", + "fill_window_sse.c", + ] + + cflags = [ + "-msse4.2", + "-mpclmul", + ] + } else { + sources = [ + "simd_stub.c", + ] + } + + configs += [ + ":zlib_internal_config", + ":zlib_warnings", + ]  }    static_library("zlib") { @@ -240,7 +243,7 @@  if (use_x86_x64_optimizations) {  sources += [ "x86.c" ]  deps += [ ":zlib_crc32_simd" ] - } else if (use_arm_neon_optimizations) { + } else if (current_cpu == "arm" && use_arm_neon_optimizations) {  sources += [ "contrib/optimizations/slide_hash_neon.h" ]  deps += [ ":zlib_arm_crc32" ]  } @@ -266,6 +269,10 @@  # zlib uses `if ((a == b))` for some reason.  cflags = [ "-Wno-parentheses-equality" ]  } + + if (is_gcc) { + cflags = [ "-Wno-misleading-indentation" ] + }  }    static_library("minizip") { @@ -288,9 +295,7 @@  ":zlib",  ]   - configs += [ - ":minizip_warnings", - ] + configs += [ ":minizip_warnings" ]    # Need access to "third_party/zlib/foo.h"  include_dirs = [ "../../" ]